package wzh.crm.ui.customer;

import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Spinner;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import wzh.crm.R;
import wzh.crm.bl.BL;
import wzh.crm.vo.CustomerVo;

public class CustomerDetailsActivity extends AppCompatActivity {
    CustomerVo model;
    EditText 客户名称;
    EditText 简介;
    Spinner 客户类型;//1:重要客户；2：一般客户；3：低价值客户;
    Spinner 当前状态;//1：初访；2：意向；3：报价；4：成交；5：暂时搁置;
    EditText 地区;
    EditText 上级客户;
    EditText 客户来源;
    EditText 公司规模;
    EditText 电话;
    EditText 邮箱;
    EditText 网址;
    EditText 地址;
    EditText 邮编;
    EditText 创建人;
    EditText 创建该客户的时间;
    EditText 备注;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_customer_details);

        loadViews();
        readIntent();
        displayModel();
    }

    void loadViews() {
        客户名称= (EditText) findViewById(R.id.客户名称);
        简介= (EditText) findViewById(R.id.简介);
        客户类型= (Spinner) findViewById(R.id.客户类型);//1:重要客户；2：一般客户；3：低价值客户;
        当前状态= (Spinner) findViewById(R.id.当前状态);//1：初访；2：意向；3：报价；4：成交；5：暂时搁置;
        地区= (EditText) findViewById(R.id.地区);
        上级客户= (EditText) findViewById(R.id.上级客户);
        客户来源= (EditText) findViewById(R.id.客户来源);
        公司规模= (EditText) findViewById(R.id.公司规模);
        电话= (EditText) findViewById(R.id.电话);
        邮箱= (EditText) findViewById(R.id.邮箱);
        网址= (EditText) findViewById(R.id.网址);
        地址= (EditText) findViewById(R.id.地址);
        邮编= (EditText) findViewById(R.id.邮编);
        创建人= (EditText) findViewById(R.id.创建人);
        创建该客户的时间= (EditText) findViewById(R.id.创建该客户的时间);
        备注= (EditText) findViewById(R.id.备注);
    }

    void readIntent() {
        model = (CustomerVo) getIntent().getSerializableExtra("MODEL");
        if (model == null) {
            model = new CustomerVo();
        }
    }

    void updateModel() {
        model.set客户名称(客户名称.getText().toString());
        model.set简介(简介.getText().toString());
        model.set客户类型((int) (客户类型.getSelectedItemId()+1));
        model.set当前状态((int) (当前状态.getSelectedItemId()+1));
        try {
            model.set地区(Integer.parseInt(地区.getText().toString()));
        }catch (NumberFormatException e){
            e.printStackTrace();
        }
        try {
            model.set上级客户(Integer.parseInt(上级客户.getText().toString()));
        }catch (NumberFormatException e){
            e.printStackTrace();
        }
        try {
            model.set公司规模(Integer.parseInt(公司规模.getText().toString()));
        }catch (NumberFormatException e){
            e.printStackTrace();
        }
        model.set客户来源(客户来源.getText().toString());
        model.set电话(电话.getText().toString());
        model.set邮箱(邮箱.getText().toString());
        model.set网址(网址.getText().toString());
        model.set地址(地址.getText().toString());
        model.set邮编(邮编.getText().toString());
        try {
            model.set创建人(Integer.parseInt(创建人.getText().toString()));
        }catch (NumberFormatException e){
            e.printStackTrace();
        }
        try {
            model.set创建该客户的时间(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(创建该客户的时间.getText().toString()));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        model.set备注(备注.getText().toString());
    }

    void displayModel() {
        setTitle(model.get客户名称());
        客户名称.setText(model.get客户名称());
        简介.setText( model.get简介());
        客户类型.setSelection( model.get客户类型()-1);
        当前状态.setSelection(model.get当前状态()-1);
        地区.setText( ""+model.get地区());
        上级客户.setText( ""+model.get上级客户());
        客户来源.setText( model.get客户来源());
        公司规模.setText( ""+model.get公司规模());
        电话.setText( model.get电话());
        邮箱.setText( model.get邮箱());
        网址.setText( model.get网址());
        地址.setText( model.get地址());
        邮编.setText( model.get邮编());
        创建人.setText( ""+model.get创建人());
        if(model.get创建该客户的时间()==null){
            创建该客户的时间.setText(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()).toString());
        }else{
            创建该客户的时间.setText(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(model.get创建该客户的时间()).toString());
        }
        备注.setText( model.get备注());
    }

    public void save(View view) {
        updateModel();
        AsyncTask<Object,Object,Object> asyncTask= new AsyncTask<Object, Object, Object>() {
            @Override
            protected Object doInBackground(Object... params) {
                try {
                    BL.customerBL().save(model);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
                return null;
            }
        };
        asyncTask.execute(new Object());
        Intent result=new Intent();
        result.putExtra("MODEL",model);
        setResult(RESULT_OK,result);
        this.finish();

    }

}
